package com.gpframework.module.common.domain.req;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.gpframework.module.base.domain.req.BrandBaseEntity;
import com.gpframework.module.common.domain.CommonLabel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.util.Date;
import java.util.List;

/**
 * @ClassName CommonWxUserAdd
 * @Author gpframework
 * @Date 2022-04-07
 * @Version 1.0.0
 * @Description 微信用户Add对象
 */
@Data
@ToString
@EqualsAndHashCode
@NoArgsConstructor
@Accessors(chain = true)
public class CommonWxUserAdd extends BrandBaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 品牌id
     */
    @ApiModelProperty("品牌id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long brandId;
    /**
     * 会员类型：member、员工：employee
     */
    @ApiModelProperty("会员类型")
    private String wxType;

    /**
     * 品牌名称
     */
    @ApiModelProperty("品牌名称")
    private String brandName;

    /**
     * 门店id
     */
    @ApiModelProperty("门店id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long storeId;

    /**
     * 店铺id
     */
    @ApiModelProperty("店铺id")
    private Long lastStoreId;

    /**
     * 系统用户id
     */
    @ApiModelProperty("系统用户id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long brandUserId;

    /**
     * uni-ubi人脸id
     */
    @ApiModelProperty("uni-ubi人脸id")
    private String guid;

    /**
     * 微信小程序openid
     */
    @ApiModelProperty("微信小程序openid")
    private String wxAppletOpenid;

    /**
     * 微信公众号openid
     */
    @ApiModelProperty("微信公众号openid")
    private String wxPublicOpenid;

    /**
     * 微信unionId
     */
    @ApiModelProperty("微信unionId")
    private String unionId;

    /**
     * 微信号
     */
    @ApiModelProperty("微信号")
    private String wechatCode;

    /**
     * 用户编号;员工工号
     */
    @ApiModelProperty("用户编号;员工工号")
    private String userCode;

    /**
     * 昵称
     */
    @ApiModelProperty("昵称")
    private String nickname;

    /**
     * 真实名称
     */
    @ApiModelProperty("真实名称")
    private String userName;

    /**
     * 性别
     */
    @ApiModelProperty("性别")
    private String sex;

    /**
     * 头像url
     */
    @ApiModelProperty("头像url")
    private String headImage;

    /**
     * 区域id
     */
    @ApiModelProperty("区域id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long areaId;

    /**
     * 详细住址
     */
    @ApiModelProperty("详细住址")
    private String address;

    /**
     * 微信号
     */
    @ApiModelProperty("微信号")
    private String wxCode;

    /**
     * 手机号
     */
//    @Phone
//    @Size(min = 11,max = 11)
    @ApiModelProperty("手机号")
    private String phone;

    /**
     * 身份证号
     */
    @ApiModelProperty("身份证号")
    private String idNumber;

    /**
     * 证件类型 其它1001、身份证1002
     */
    @ApiModelProperty("证件类型 其它1001、身份证1002")
    private Integer certificateType;

    /**
     * 生日
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("生日")
    private Date birthday;

    /**
     * 邮箱
     */
    @ApiModelProperty("邮箱")
    private String email;

    /**
     * 简介
     */
    @ApiModelProperty("简介")
    private String synopsis;

    /**
     * 公司区域id
     */
    @ApiModelProperty("公司区域id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long companyAreaId;

    /**
     * 公司详细地址
     */
    @ApiModelProperty("公司详细地址")
    private String companyAddress;

    /**
     * 婚姻情况
     */
    @ApiModelProperty("婚姻情况")
    private String marriageCondition;

    /**
     * 子女情况
     */
    @ApiModelProperty("子女情况")
    private String childrenCondition;

    /**
     * 录入人id
     */
    @ApiModelProperty("录入人id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long inputUserId;

    /**
     * 录入人名称
     */
    @ApiModelProperty("录入人名称")
    private String inputUserName;

    /**
     * 分享人id
     */
    @ApiModelProperty("分享人id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long shareId;

    /**
     * 分享人名称
     */
    @ApiModelProperty("分享人名称")
    private String shareName;

    /**
     * 状态;有效、无效、冻结、删除
     */
    @ApiModelProperty("状态;有效、无效、冻结、删除")
    private String status;

    /**
     * 是否进小程序默认打开二维码
     */
    @ApiModelProperty("是否进小程序默认打开二维码")
    private String defaultOpenQrcode;

    /**
     * 人脸图片
     */
    @ApiModelProperty("人脸图片")
    private String faceImage;

    @ApiModelProperty(value = "智慧前台人脸用户ID",required = true)
    private String faceSetid;

    @ApiModelProperty("人脸上传设备状态码")
    private String deviceStatusCode;

    @ApiModelProperty("人脸上传设备状态码描述符")
    private String deviceStatusCodeDesc;


    /**
     * 排序
     */
    @ApiModelProperty("排序")
    private Long sort;

    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String remarks;


    /**
     * 来源;会员介绍、会籍销售拉取
     */
    @ApiModelProperty("来源;会员介绍、会籍销售拉取")
    private String origin;

    /**
     * 来源人id
     */
    @ApiModelProperty("来源人id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long originUserId;

    /**
     * 来源人名称
     */
    @ApiModelProperty("来源人名称")
    private String originUserName;

    /**
     * 标签列表
     */
    @ApiModelProperty("标签列表")
    private List<CommonLabel> labelList;

    /**
     * 会籍id
     */
    @ApiModelProperty("会籍id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long salesmanId;
    /**
     * 会籍名称
     */
    @ApiModelProperty("会籍名称")
    private String salesmanName;


    /**
     * 会员码
     */
    @ApiModelProperty("会员码")
    private String qrCode;

    /**
     * 标签id列表
     */
    @ApiModelProperty("标签id列表")
    private List<Long> labelIdList;

    /**
     * 用户id列表
     */
    @ApiModelProperty("用户id列表")
    private List<Long> userIdList;

    @ApiModelProperty("提示信息")
    private String msg;

    @ApiModelProperty("跟进员类型;30 教练、40 销售员")
    private String followSalesmanType;
}
